【AWS CDK】Lambda の Provisioned Concurrency を設定する
はじめに
テントの中から失礼します、CX事業本部のてんとタカハシです!
今回は、AWS CDK で Lambda の Provisioned Concurrency を設定してみました。
Provisioned Concurrency の概要については下記の記事をご参照ください。
ソースコードは下記のリポジトリにも置いてあります。
GitHub - iam326/cdk-lambda-provisioned-concurrency
環境
環境は下記の通りです。
$ sw_vers ProductName: Mac OS X ProductVersion: 10.15.7 BuildVersion: 19H2 $ cdk --version 1.86.0 (build a10cfcf) $ yarn --version 1.22.10 $ node --version v14.7.0
実装
実装は下記の通りです。
Provisioned Concurrency を設定するには、エイリアスかバージョンを指定する必要があるため、ここでは最新のバージョン($LATEST ではない)を指すエイリアスを作成しているのがポイントです。
import * as cdk from '@aws-cdk/core'; import * as lambda from '@aws-cdk/aws-lambda'; export class CdkLambdaProvisionedConcurrencyStack extends cdk.Stack { constructor(scope: cdk.Construct, id: string, props?: cdk.StackProps) { super(scope, id, props); const func = new lambda.Function(this, 'SampleLambdaFunction', { code: lambda.Code.fromAsset('dist/hello-world'), functionName: 'SampleLambdaFunction', handler: 'index.handler', runtime: lambda.Runtime.NODEJS_12_X, currentVersionOptions: { removalPolicy: cdk.RemovalPolicy.RETAIN, }, // 予約された同時実行数の設定 reservedConcurrentExecutions: 100, }); // 最新のバージョンを指すエイリアスを作成してから、 func.currentVersion.addAlias('Alias', { // プロビジョニングされた同時実行数の設定を行う provisionedConcurrentExecutions: 5, }); } }
デプロイ
デプロイを開始すると、Provisioned Concurrency のステータスが「準備完了」になるまで、スタックの作成は終わりません。
スタックの作成中に Lambda の画面を確認すると、ステータスが「進行中」の設定が存在していることを確認できます。
スタックの作成が終了すると、
ステータスが「準備完了」に変わっていることを確認できます。
おわりに
Lambda の Provisioned Concurrency はとても便利な機能ですが、うっかり設定したまま放置してしまうと、なかなかにコストが嵩んでしまうので、消し忘れにご注意を。
今回は以上になります。最後まで読んで頂きありがとうございました!